home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / boot / netBoot.new / dev / screg.h < prev    next >
C/C++ Source or Header  |  1990-12-19  |  2KB  |  73 lines

  1.  
  2. /*    @(#)screg.h 1.1 86/09/27 SMI    */
  3.  
  4. /*
  5.  * Copyright (c) 1986 by Sun Microsystems, Inc.
  6.  */
  7.  
  8. /* 
  9.  * SCSI Sun host adapter control registers.
  10.  */
  11.  
  12. struct    scsi_ha_reg {        /* host adapter (I/O space) registers */
  13.     u_char    data;        /* data register */
  14.     u_char    unused;
  15.     u_char    cmd_stat;    /* command/status register */
  16.     u_char    unused2;
  17.     u_short    icr;        /* interface control register */
  18.     u_short    unused3;
  19.     u_long    dma_addr;    /* dma base address */
  20.     u_short    dma_count;    /* dma count register */
  21.     u_char    unused4;
  22.     u_char    intvec;        /* interrupt vector for SUN2_VME version */
  23. };
  24.  
  25. /*
  26.  * bits in the interface control register 
  27.  */
  28. #define    ICR_PARITY_ERROR    0x8000
  29. #define    ICR_BUS_ERROR        0x4000
  30. #define    ICR_ODD_LENGTH        0x2000
  31. #define    ICR_INTERRUPT_REQUEST    0x1000
  32. #define    ICR_REQUEST        0x0800
  33. #define    ICR_MESSAGE        0x0400
  34. #define    ICR_COMMAND_DATA    0x0200    /* command=1, data=0 */
  35. #define    ICR_INPUT_OUTPUT    0x0100    /* input=1, output=0 */
  36. #define    ICR_PARITY        0x0080
  37. #define    ICR_BUSY        0x0040
  38. /* Only the following bits may usefully be set by the CPU */
  39. #define    ICR_SELECT        0x0020
  40. #define    ICR_RESET        0x0010
  41. #define    ICR_PARITY_ENABLE    0x0008
  42. #define    ICR_WORD_MODE        0x0004
  43. #define    ICR_DMA_ENABLE        0x0002
  44. #define    ICR_INTERRUPT_ENABLE    0x0001
  45.  
  46. /*
  47.  * Compound conditions of icr bits message, command/data and input/output.
  48.  */
  49. #define    ICR_COMMAND    (ICR_COMMAND_DATA)
  50. #define    ICR_STATUS    (ICR_COMMAND_DATA | ICR_INPUT_OUTPUT)
  51. #define    ICR_MESSAGE_IN    (ICR_MESSAGE | ICR_COMMAND_DATA | ICR_INPUT_OUTPUT)
  52. #define    ICR_BITS    (ICR_MESSAGE | ICR_COMMAND_DATA | ICR_INPUT_OUTPUT)
  53. #define ICR_DATA_OUT    0
  54.  
  55. /*
  56.  * Messages that SCSI can send.
  57.  *
  58.  * For now, there is just one.
  59.  */
  60. #define    SC_COMMAND_COMPLETE    0x00
  61.  
  62. /*
  63.  * Defines for SCSI tape controllers
  64.  */
  65. #define SYSGEN_SENSE_LENGTH    16
  66. #define EMULEX_SENSE_LENGTH     11
  67. #define SYSGEN     1
  68. #define EMULEX     2
  69.  
  70. #define ISEMULEX(un)    un->un_ctype == EMULEX ? 1 : 0
  71.  
  72.  
  73.